﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Entidades.Sistema;
using Entidades.Sistema.Venta;

namespace Mapping.Sistema.Venta
{
    public static class MappingCondicionIva
    {
        public static List<CondicionIva> ConsultarCondicionIvaes()
        {
            try
            {
                SqlCommand cmdCondicionIvas = new SqlCommand();
                cmdCondicionIvas.CommandText = "sp_ConsultarCondicionIva";
                cmdCondicionIvas.CommandType = System.Data.CommandType.StoredProcedure;
                Servicios.Conexion.ObtenerInstancia().Conectar("Sistema");
                cmdCondicionIvas.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
                SqlDataReader drCondicionIvas = cmdCondicionIvas.ExecuteReader();

                List<CondicionIva> ColCondicionIvaes = new List<CondicionIva>();

                while (drCondicionIvas.Read())
                {
                    CondicionIva oCondicionIva = new CondicionIva();
                    oCondicionIva.IdCondicionIva = Convert.ToInt32(drCondicionIvas["Id_CondicionIva"]);
                    oCondicionIva.Nombre = drCondicionIvas["Nombre"].ToString();
                    ColCondicionIvaes.Add(oCondicionIva);
                }

                Servicios.Conexion.ObtenerInstancia().Desconectar("Sistema");
                return ColCondicionIvaes;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public static bool AgregarCondicionIva(CondicionIva oCondicionIva)
        {
            SqlCommand cmdCondicionIva = new SqlCommand();
            cmdCondicionIva.CommandText = "sp_AgregarCondicionIva";
            cmdCondicionIva.CommandType = System.Data.CommandType.StoredProcedure;
            cmdCondicionIva.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdCondicionIva.Parameters.Add("@Id_CondicionIva", System.Data.SqlDbType.Int).Value = oCondicionIva.IdCondicionIva;
            cmdCondicionIva.Parameters.Add("@Nombre", System.Data.SqlDbType.VarChar, 50).Value = oCondicionIva.Nombre;
            cmdCondicionIva.ExecuteNonQuery();
            return true;
        }

        public static int ModificarCondicionIva(CondicionIva oCondicionIva)
        {
            SqlCommand cmdCondicionIva = new SqlCommand();
            cmdCondicionIva.CommandText = "sp_ModificarCondicionIva";
            cmdCondicionIva.CommandType = System.Data.CommandType.StoredProcedure;
            cmdCondicionIva.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdCondicionIva.Parameters.Add("@Id_CondicionIva", System.Data.SqlDbType.Int).Value = oCondicionIva.IdCondicionIva;
            cmdCondicionIva.Parameters.Add("@Nombre", System.Data.SqlDbType.VarChar).Value = oCondicionIva.Nombre;
            int nro = Convert.ToInt32(cmdCondicionIva.ExecuteScalar());

            return nro;
        }

        public static bool EliminarCondicionIva(CondicionIva oCondicionIva)
        {
            SqlCommand cmdEliminarCondicionIva = new SqlCommand();
            cmdEliminarCondicionIva.CommandText = "sp_EliminarCondicionIva";
            cmdEliminarCondicionIva.CommandType = System.Data.CommandType.StoredProcedure;
            cmdEliminarCondicionIva.Connection = Servicios.Conexion.ObtenerInstancia().RetornarConexion();
            cmdEliminarCondicionIva.Parameters.Add("@Id_CondicionIva", System.Data.SqlDbType.Int).Value = oCondicionIva.IdCondicionIva;
            cmdEliminarCondicionIva.ExecuteNonQuery();

            return true;
        }
    }
}
